Computers and computer networks face a myriad of threats to the information they contain and to their smooth and continuous operation. Backup systems and methods have been proposed for maintaining snapshots of information on a computer or a computer system at any given time. With a backup, if the computer system experiences some type of corruption of its stored information, the state of the computer can be restored to the point in time when the backup was made.
Computer systems typically maintain sets of files that are stored on various forms of computer media. The locations of the blocks of data, on the media that contain the files' data, are stored in special data structures called “file system metadata” (or simply “metadata”) and these metadata, combined with the files' own data, are collectively called a “file system.” The blocks of data for an entire file system are often contained within a logical construct called a “volume,” which is a collection of media blocks that may span across one or more media devices. Formatting a volume is a process of writing file system metadata structures to blocks on the underlying volume. File systems generally contain a recognizable portion called a “signature” within their metadata that makes them recognizable, as a file system, to an operating system. When the operating system recognizes a file system on a volume, the operating system may mount the volume to expose the volume's file contents, for use by the system's users and applications. If the operating system cannot recognize the file system on a volume then it will typically indicate that the volume is unformatted, unrecognized, or a combination thereof. When a volume is unrecognized by the operating system, its contents generally cannot be altered by the user (unless they format the volume, rendering it recognizable), or by typical applications.
To protect computer data, various techniques have been developed to back up that data. One common backup technique involves the creation of backup copies of files on a per-file basis. This technique is often simply called “file backup.” Many backup procedures use the file system as a starting point and perform the backup by writing the files to a backup storage system. Using this approach, individual files are backed up if they have been modified since the previous backup. This file system backup procedure may be useful for finding and restoring a few lost or corrupted files, but it may include significant overhead in the form of bandwidth and logical overhead to store information about where each file exists within the file system. In addition, complete reconstruction of a storage volume may be difficult using incremental file backups because files that have been deleted may be put back on the volume based on the contents of the incremental backups.
Another technique ignores the individual files and instead backs up the blocks of data of the media on which the file system resides. This technique is often called “disk image backup” (or “image backup,” or “block backup”) because the backup file itself generally contains or represents an image, or copy, of the entire contents of the volume (computer users often loosely call their volumes “disks” despite the fact that an actual physical media disk may contain more than one volume, which is often the case when a hard disk drive contains multiple partitions, each partition hosting a volume) which may be backed up. In fact, with the disk image backup technique, the backup itself is generally called a “backup image” (or simply “image”). Because it backs up the blocks on the media underlying the file system, the disk image backup technique backs up both the files' data and the file system metadata. File backup does not generally back up the file system metadata. Because the disk image backup technique backs up media blocks rather than files, this technique does not necessarily need to be aware of the file system structures or the files contained in the file system. However, in practice, many disk image backup systems may utilize minimal knowledge of the file system in order to only back up blocks of data that are actually in use on the media, ignoring unused blocks.
A disk image backup can be relatively fast because the file structure does not need to be examined. Conversely, because there is no coordination with the file system, no file changes can be made during the backup copy. In addition, retrieving files from the backup copy may be difficult or impossible without restoring the entire volume. Finally, while the data transfer may be fast with block copies, every block with valid data must be copied, resulting in a relatively long process for large volumes (e.g., perhaps even days).
If a computer or server crashes or fails, or the software becomes corrupted, it may become necessary to restore the state of the server to some previously backed-up state. Additionally, if a user desires to migrate or upgrade from one server to another server, the new server must be brought up to the same state with the same information as the server to be replaced. Conventionally, the restore process consists of three steps: (1) the machine is usually physically shut down; (2) a backup of the latest data is created; and (3) the data is copied from the backup storage to the storage of the new server (e.g., a disk drive used by the server). During this operation, a dedicated boot procedure can be used (for example, boot from a floppy disk); and (4) the new server is started.
Between the shutdown and start time, neither server performs any useful functions. Also, the process of restoring all the files of the server is time consuming. In corporate networks, a typical server can have many terabytes of data. With current data transfer rates over networks and from disks, restoring this much data may take hours, or even days.
Also, even an hour of downtime may be considered an extremely long time, particularly for many mission-critical applications. For example, if the server in question is a web server that handles customer requests or sales, a period of 16-20 minutes of downtime can result in substantial lost sales.
Systems and methods are needed for an effective backup strategy that is flexible in maintaining multiple, accurate backup states, and reducing a downtime when both a backup computer and a restore computer are not operational.